import { getToken, setToken } from '@/utils/auth'
import { loginAPI } from '@/api/user'

export default {
  namespaced: true,
  state: {
    auth_token: getToken() || ''
  },
  mutations: {
    SET_TOKEN (state, token) {
      state.auth_token = token
      setToken(token)
    }
  },
  actions: {
    async login ({ commit }, data) {
      const res = await loginAPI(data)
      commit('SET_TOKEN', res.access)
    },
    logout ({ commit }) {
      commit('SET_TOKEN', '')
    }
  }
}
// 使用语法: 如何在组件中使用子模块的各个数据和方法
// 1.使用state数据
// this.$store.state.user.XXX
/**
 * import {mapState} from 'vuex'
 * computed: {
 *   ...mapState('模块名', ['属性名S'])
 * }
 */
// 2.使用getters
// this.$store.getters[模块名/方法名]
/**
 * import {mapGetters} from vuex
 * computed: {
 *   ...mapGetters('模块名', [getters方法名])
 * }
 */
